Message presentation management in a social networking environment

ABSTRACT

Disclosed aspects relate to message presentation management in a social networking environment. A message from a source may be detected in the social networking environment. An identified category for the message from the source may be identified based on a set of candidate categories. A presentation format for the message from the source may be determined by comparing a set of user profile criteria with the identified category for the message from the source. The message from the source may be presented in the social networking environment using the presentation format.

BACKGROUND

This disclosure relates generally to computer systems and, moreparticularly, relates to message presentation management in a socialnetworking environment. Social networking environments may be used tofacilitate message communication among users. The amount of informationcommunicated using social networking environments is increasing. As theamount of information communicated using social networking environmentsincreases, the need for message presentation management may alsoincrease.

SUMMARY

Aspects of the disclosure relate to message presentation in a socialnetworking environment. Features may work with a social networkingenvironment to detect the receiving of a message. Disclosed aspects mayextract the content of the message with respect to various categories.The content of the message may be analyzed with respect to variouscategories in order to establish a method of presentation for themessage. The message may be presented to the user according to thedetermined presentation format in order to tailor the viewstream of auser of a social networking environment to the specific preferences orinterests of the specific user. Disclosed aspects may establishdifferent presentation formats for different types of messages withdifferent types or kinds of content. Features may present the message tothe user based on the established presentation format.

Disclosed aspects relate to message presentation management in a socialnetworking environment. A message from a source may be detected in thesocial networking environment. An identified category for the messagefrom the source may be identified based on a set of candidatecategories. A presentation format for the message from the source may bedetermined by comparing a set of user profile criteria with theidentified category for the message from the source. The message fromthe source may be presented in the social networking environment usingthe presentation format.

The above summary is not intended to describe each illustratedembodiment or every implementation of the present disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

The drawings included in the present application are incorporated into,and form part of, the specification. They illustrate embodiments of thepresent disclosure and, along with the description, serve to explain theprinciples of the disclosure. The drawings are only illustrative ofcertain embodiments and do not limit the disclosure.

FIG. 1 depicts a high-level block diagram of a computer system forimplementing various embodiments of the present disclosure, according toembodiments.

FIG. 2 is a block diagram illustrating an architecture for naturallanguage analysis, according to embodiments.

FIG. 3 is a flowchart illustrating a method for message presentationmanagement in a social networking environment, according to embodiments.

FIG. 4 is a flowchart illustrating a method for message presentationmanagement in a social networking environment, according to embodiments.

FIG. 5 is a flowchart illustrating a method for message presentationmanagement in a social networking environment, according to embodiments.

FIG. 6 is a flowchart illustrating a method for message presentationmanagement in a social networking environment, according to embodiments.

While the invention is amenable to various modifications and alternativeforms, specifics thereof have been shown by way of example in thedrawings and will be described in detail. It should be understood,however, that the intention is not to limit the invention to theparticular embodiments described. On the contrary, the intention is tocover all modifications, equivalents, and alternatives falling withinthe spirit and scope of the invention.

DETAILED DESCRIPTION

Aspects of the disclosure relate to message presentation in a socialnetworking environment. Features may work with a social networkingenvironment to detect the receiving of a message. Disclosed aspects mayextract the content of the message with respect to various categories.The content of the message may be analyzed with respect to variouscategories in order to establish a method of presentation for themessage. The message may be presented to the user according to thedetermined presentation format in order to tailor the viewstream of auser of a social networking environment to the specific preferences orinterests of the specific user.

Online social networks can connect people in different locations, withdifferent interests, and of different ages. Users may be able to sendmessages to their connections about a wide range of topics with a widerange of views, including politics, science, finance, and sports. Thesemessages may vary in intensity and result different reactions from therecipient. Negative interactions may result in recipients ignoring,filtering-out, or unsubscribing connections from their social networkingenvironment. A user may desire to receive selective and controlled viewsof messages. Message presentation management may control the messagesreceived by users through categorizing people and connections,evaluating messages with regards to a recipient-defined criteria for thecategory, and managing the presentation of the message. Messagepresentation management may enable a user to change subscription modelsfor messages.

Aspects of the disclosure include a system, method, and computer programproduct for message presentation management in a social networkingenvironment. A message from a source may be detected in the socialnetworking environment. An identified category for the message from thesource may be identified based on a set of candidate categories. Apresentation format for the message from the source may be determined bycomparing a set of user profile criteria with the identified categoryfor the message from the source. The message from the source may bepresented in the social networking environment using the presentationformat.

In embodiments, the categories used to characterize messages may bepredefined, machine-learned clustered, or crowd-sourced from the socialnetworking environment. In embodiments, criteria for messages mayinclude life events, action events, media events, natural languageevents, or temporal events. In various embodiments, a set of userprofile criteria may be configured. In certain embodiments, the set ofuser profile criteria may be configured based on a set of similar users.Altogether, aspects of the disclosure can have performance or efficiencybenefits (e.g., reliability, speed, flexibility, responsiveness,stability, high availability, resource usage, productivity). Aspects maysave resources such as bandwidth, disk, processing, or memory. As anexample, the use of message presentation management may save bandwidth.The presentation of relevant messages to a user instead of all messagesmay prevent a user from having to search for the messages they want toview. This may save both time and bandwidth for the user. Other methodsof saving bandwidth using message presentation management may also bepossible.

Turning now to the figures, FIG. 1 depicts a high-level block diagram ofa computer system for implementing various embodiments of the presentdisclosure, according to embodiments. The mechanisms and apparatus ofthe various embodiments disclosed herein apply equally to anyappropriate computing system. The major components of the computersystem 100 include one or more processors 102, a memory 104, a terminalinterface 112, a storage interface 114, an I/O (Input/Output) deviceinterface 116, and a network interface 118, all of which arecommunicatively coupled, directly or indirectly, for inter-componentcommunication via a memory bus 106, an I/O bus 108, bus interface unit109, and an I/O bus interface unit 110.

The computer system 100 may contain one or more general-purposeprogrammable central processing units (CPUs) 102A and 102B, hereingenerically referred to as the processor 102. In embodiments, thecomputer system 100 may contain multiple processors; however, in certainembodiments, the computer system 100 may alternatively be a single CPUsystem. Each processor 102 executes instructions stored in the memory104 and may include one or more levels of on-board cache.

In embodiments, the memory 104 may include a random-access semiconductormemory, storage device, or storage medium (either volatile ornon-volatile) for storing or encoding data and programs. In certainembodiments, the memory 104 represents the entire virtual memory of thecomputer system 100, and may also include the virtual memory of othercomputer systems coupled to the computer system 100 or connected via anetwork. The memory 104 can be conceptually viewed as a singlemonolithic entity, but in other embodiments the memory 104 is a morecomplex arrangement, such as a hierarchy of caches and other memorydevices. For example, memory may exist in multiple levels of caches, andthese caches may be further divided by function, so that one cache holdsinstructions while another holds non-instruction data, which is used bythe processor or processors. Memory may be further distributed andassociated with different CPUs or sets of CPUs, as is known in any ofvarious so-called non-uniform memory access (NUMA) computerarchitectures.

The memory 104 may store all or a portion of the various programs,modules and data structures for processing data transfers as discussedherein. For instance, the memory 104 can store a message presentationmanagement application 150. In embodiments, the message presentationmanagement application 150 may include instructions or statements thatexecute on the processor 102 or instructions or statements that areinterpreted by instructions or statements that execute on the processor102 to carry out the functions as further described below. In certainembodiments, the message presentation management application 150 isimplemented in hardware via semiconductor devices, chips, logical gates,circuits, circuit cards, and/or other physical hardware devices in lieuof, or in addition to, a processor-based system. In embodiments, themessage presentation management application 150 may include data inaddition to instructions or statements.

The computer system 100 may include a bus interface unit 109 to handlecommunications among the processor 102, the memory 104, a display system124, and the I/O bus interface unit 110. The I/O bus interface unit 110may be coupled with the I/O bus 108 for transferring data to and fromthe various I/O units. The I/O bus interface unit 110 communicates withmultiple I/O interface units 112, 114, 116, and 118, which are alsoknown as I/O processors (IOPs) or I/O adapters (IOAs), through the I/Obus 108. The display system 124 may include a display controller, adisplay memory, or both. The display controller may provide video,audio, or both types of data to a display device 126. The display memorymay be a dedicated memory for buffering video data. The display system124 may be coupled with a display device 126, such as a standalonedisplay screen, computer monitor, television, or a tablet or handhelddevice display. In one embodiment, the display device 126 may includeone or more speakers for rendering audio. Alternatively, one or morespeakers for rendering audio may be coupled with an I/O interface unit.In alternate embodiments, one or more of the functions provided by thedisplay system 124 may be on board an integrated circuit that alsoincludes the processor 102. In addition, one or more of the functionsprovided by the bus interface unit 109 may be on board an integratedcircuit that also includes the processor 102.

The I/O interface units support communication with a variety of storageand I/O devices. For example, the terminal interface unit 112 supportsthe attachment of one or more user I/O devices 120, which may includeuser output devices (such as a video display device, speaker, and/ortelevision set) and user input devices (such as a keyboard, mouse,keypad, touchpad, trackball, buttons, light pen, or other pointingdevice). A user may manipulate the user input devices using a userinterface, in order to provide input data and commands to the user I/Odevice 120 and the computer system 100, and may receive output data viathe user output devices. For example, a user interface may be presentedvia the user I/O device 120, such as displayed on a display device,played via a speaker, or printed via a printer.

The storage interface 114 supports the attachment of one or more diskdrives or direct access storage devices 122 (which are typicallyrotating magnetic disk drive storage devices, although they couldalternatively be other storage devices, including arrays of disk drivesconfigured to appear as a single large storage device to a hostcomputer, or solid-state drives, such as flash memory). In someembodiments, the storage device 122 may be implemented via any type ofsecondary storage device. The contents of the memory 104, or any portionthereof, may be stored to and retrieved from the storage device 122 asneeded. The I/O device interface 116 provides an interface to any ofvarious other 110 devices or devices of other types, such as printers orfax machines. The network interface 118 provides one or morecommunication paths from the computer system 100 to other digitaldevices and computer systems; these communication paths may include,e.g., one or more networks 130.

Although the computer system 100 shown in FIG. 1 illustrates aparticular bus structure providing a direct communication path among theprocessors 102, the memory 104, the bus interface 109, the displaysystem 124, and the I/O bus interface unit 110, in alternativeembodiments the computer system 100 may include different buses orcommunication paths, which may be arranged in any of various forms, suchas point-to-point links in hierarchical, star or web configurations,multiple hierarchical buses, parallel and redundant paths, or any otherappropriate type of configuration. Furthermore, while the I/O businterface unit 110 and the I/O bus 108 are shown as single respectiveunits, the computer system 100 may, in fact, contain multiple I/O businterface units 110 and/or multiple I/O buses 108. While multiple I/Ointerface units are shown, which separate the I/O bus 108 from variouscommunications paths running to the various I/O devices, in otherembodiments, some or all of the I/O devices are connected directly toone or more system I/O buses.

In various embodiments, the computer system 100 is a multi-usermainframe computer system, a single-user system, or a server computer orsimilar device that has little or no direct user interface, but receivesrequests from other computer systems (clients). In other embodiments,the computer system 100 may be implemented as a desktop computer,portable computer, laptop or notebook computer, tablet computer, pocketcomputer, telephone, smart phone, or any other suitable type ofelectronic device.

FIG. 2 is a block diagram illustrating an architecture 200 for naturallanguage analysis, according to embodiments. Aspects of FIG. 2 relate toperforming one or more natural language processing and textual analyticsoperations to evaluate and interpret natural language elements (e.g.,textual data, speech). In embodiments, natural language data may becollected from one or more remote devices (e.g., smartphones, tablets,laptop/desktop computers, other computing devices) by a natural languageanalysis system 215. The natural language analysis system 215 canperform methods and techniques for processing and interpreting thenatural language data collected from the remote devices. Clientapplications 210 may involve one or more entities operable to generateevents dispatched to natural language analysis system 215 via network214. In certain embodiments, the events received at natural languageanalysis system 215 may correspond to electronic messages received fromusers, where the electronic messages may be expressed in a free form andin natural language.

An electronic message may be one or more words that form a phrase,sentence, paragraph, or other composition. The electronic message mayinclude textual data, image data, video data, audio data, or other typesof electronic media. Electronic messages may be composed of linguisticfeatures including parts-of-speech, verb tenses, lexical categories,conjugations, punctuation, contractions, sentence types, and the like.In certain embodiments, the electronic message may include bothrestricted and unrestricted syntax for natural language expression.

In embodiments, client applications 210 can include one or morecomponents such as a messaging application 202 and a mobile client 212.Client applications 210 can operate on a variety of devices. Suchdevices may include mobile and handheld devices, laptops, mobile phones,personal or enterprise digital assistants, personal computers, servers,or other computer systems configured to access the services andfunctionality provided by natural language analysis system 215. Forexample, mobile client 212 may be an application installed on a mobileor other handheld device. In embodiments, mobile client 212 may transmitelectronic messages to natural language analysis system 215.

In embodiments, messaging application 202 can facilitate the compositionand transmission of electronic messages to natural language analysissystem 215. In certain embodiments, messaging application 202 can be aclient application with respect to the natural language analysis system215. In embodiments, messaging application 202 can transmituser-composed messages to natural language analysis system 215 forprocessing. Messaging application 202 may be installed on a personalcomputer, mobile device, server or other computer system. In certainembodiments, messaging application 202 can include a graphical userinterface (GUI) 204 and session manager 206. Users may input electronicmessage text in GUI 204. In certain embodiments, GUI 204 may be amessage composition window or other interface component to receive theinput of natural language data. Users may authenticate to naturallanguage analysis system 215 via session manager 206. In certainembodiments, session manager 206 may keep track of user activity acrosssessions of interaction with the natural language analysis system 215.Session manager 206 may keep track of the electronic messages that aresubmitted within the lifecycle of a session of a user. For example,session manager 206 may retain a succession of messages submitted by auser during a session. Information for sessions managed by sessionmanager 206 may be shared between computer systems and devices.

In embodiments, client applications 210 and natural language analysissystem 215 can be communicatively coupled through network 214 (e.g. theInternet, intranet, or other public or private computer network). Incertain embodiments, natural language analysis system 215 and clientapplications 210 may communicate by using Hypertext Transfer Protocol(HTTP) or Representational State Transfer (REST) calls. In certainembodiments, natural language analysis system 215 may reside on a servernode. Client applications 210 may establish server-client communicationwith natural language analysis system 215 or vice versa. In certainembodiments, the network 214 can be implemented within a cloud computingenvironment, or using one or more cloud computing services. Consistentwith various embodiments, a cloud computing environment can include anetwork-based, distributed data processing system that provides one ormore cloud computing services.

Consistent with various embodiments, natural language analysis system215 may be configured to process and analyze the natural languageincluded in electronic messages received from client applications 210.In certain embodiments, natural language analysis system 215 may includea text processor 220, data sources 225, and result generator 228. Textprocessor 220 can be a computer module that analyzes the receivedelectronic messages. In certain embodiments, text processor 220 canperform various methods and techniques for analyzing the electronicmessages syntactically and semantically. Text processor 220 may includevarious modules to perform analyses of received electronic messages. Forexample, text processor 220 may include a tokenizer 221, apart-of-speech (POS) tagger 222, semantic relationship identification223, and syntactic relationship identification 224.

Consistent with various embodiments, tokenizer 221 may be a computermodule that performs lexical analysis. Tokenizer 221 can convert asequence of characters into a sequence of tokens. Tokens may be stringof characters typed by a user and categorized as a meaningful symbol.Further, in certain embodiments, tokenizer 221 can identify wordboundaries in an electronic message and break sentences into theircomponent parts such as words, multiword tokens, numbers, andpunctuation marks. In certain embodiments, tokenizer 221 can receive astring of characters, identify the lexemes in the string, and categorizethem into tokens.

Consistent with various embodiments, POS tagger 222 can be a computermodule that marks up a word in a text to correspond to a particular partof speech. POS tagger 222 can read a sentence or other text in naturallanguage and assign a part of speech to each word or other token. POStagger 222 can determine the part of speech to which a word correspondsbased on the definition of the word and the context of the word. Thecontext of a word may be based on its relationship with adjacent andrelated words in a phrase, sentence, question, or paragraph. In certainembodiments, the context of a word may be dependent on one or morepreviously received electronic messages. Examples of parts of speechthat may be assigned to words include, but are not limited to, nouns,verbs, adjectives, adverbs, and the like. Examples of other part ofspeech categories that POS tagger 222 may assign include, but are notlimited to, comparative or superlative adverbs, wh-adverbs,conjunctions, determiners, negative particles, possessive markers,prepositions, wh-pronouns, and the like. In certain embodiments, POStagger 222 can tag or otherwise annotate tokens of a question with partof speech categories. In certain embodiments, POS tagger 222 can tagtokens or words of an electronic message to be parsed by other modulesof natural language analysis system 215.

In embodiments, semantic relationship identification 223 may be acomputer module that can identify semantic relationships of recognizedentities in electronic messages composed by users. In certainembodiments, semantic relationship identification 223 may determinefunctional dependencies between entities, the dimension associated witha member, and other semantic relationships.

In embodiments, syntactic relationship identification 224 may be acomputer module that can identify syntactic relationships in electronicmessages composed of tokens posed by users to natural language analysissystem 215. Syntactic relationship identification 224 can determine thegrammatical structure of sentences, such as which groups of words areassociated as “phrases” and which word is the subject or object of averb. In certain embodiments, syntactic relationship identification 224can conform to a formal grammar.

In embodiments, text processor 220 may be a computer module that canparse a received electronic message and generate a corresponding datastructure for the message. For example, in response to receiving anelectronic message at natural language analysis system 215, textprocessor 220 can output the parsed message as a data structure. Incertain embodiments, the parsed question may be represented in the formof a parse tree or other graph structure. To generate the parsedmessage, text processor 220 may trigger computer modules 221-224. Textprocessor 220 can use functionality provided by computer modules 221-224individually or in combination. Additionally, in certain embodiments,text processor 220 may use external computer systems for dedicated tasksthat are part of the message parsing process.

In embodiments, the output of text processor 220 can be used by naturallanguage analysis system 215 to associate content of the electronicmessage with data maintained in one or more data sources 225. Inembodiments, data sources 225 may include data warehouses, informationcorpora, data models, and document repositories. In certain embodiments,the data sources 225 may include an information corpus 226. Theinformation corpus 226 can enable data storage and retrieval. In certainembodiments, the information corpus 226 may be a storage mechanism thathouses a standardized, consistent, clean and integrated form of data.The data may be sourced from various operational systems. Data stored inthe information corpus 226 may be structured in a way to specificallyaddress reporting and analytic requirements. In one embodiment, theinformation corpus 226 may be a relational database (e.g., conform to anontology). In some example embodiments, data sources 225 may include oneor more document repositories.

In certain embodiments, result generator 228 may be a computer modulethat generates output data structures for received electronic messages.For instance, the result generator 228 may be configured to generateassociated sentiment analyses and confidence scores for one or moreportions of the electronic message. Other types of results are alsopossible.

In embodiments, result generator 228 may include query processor 230,visualization processor 232 and feedback handler 234. When informationin a data source 225 is coupled with an electronic message, a queryassociated with the requested data can be executed by query processor230 to retrieve the data from the data source 225. Using the dataretrieved by query processor 230, visualization processor 232 can rendervisualization of the retrieved data, where the visualization representsthe retrieved data. In certain embodiments, visualization processor 232may render various analytics to represent the data including, but notlimited to, images, emoticons, animated gifs, charts, tables,dashboards, maps, and the like. In certain embodiments, visualizationprocessor 332 can present the data to a user in understandable form.

In certain embodiments, feedback handler 234 can be a computer modulethat processes feedback from users on electronic messages processed bynatural language analysis system 215. In certain embodiments, users maybe engaged in dialog with the natural language analysis system 215 toevaluate the relevance, efficacy, or performance of processed messages.Result generator 228 may produce a list of candidate message results fora processed electronic message. The user may rank each answer accordingto its relevance, efficacy, performance, or quality. In certainembodiments, the feedback of users on processed messages may be used forfuture message processing sessions.

FIG. 3 is a flowchart illustrating a method 300 for message presentationmanagement in a social networking environment. The social networkingenvironment can include a selection from a group consisting of at leastone of: email, calendar, instant messaging (IM), short message services(SMS), wiki, community (e.g., micro-blog, professional connections,photo-sharing), newsfeed, project collaboration, product reviews, or thelike. Aspects of FIG. 3 relate to using identified categories todynamically manage the presentation of a message. The method 300 maybegin at block 301.

In embodiments, the detecting, the identifying, the determining, thepresenting, and the other steps described herein may each occur in adynamic fashion to streamline message presentation management at block304. The detecting, the identifying, the determining, the presenting,and the other steps described herein may be performed simultaneously(e.g., identifying an identified category for the message from thesource while the user communicates with other users in the socialnetworking environment) in order to streamline (e.g., facilitate,promote) message presentation management. Other methods of performingthe steps described herein are also possible.

In embodiments, the detecting, the identifying, the determining, thepresenting, and the other steps described herein may each occur in anautomated fashion without user intervention at block 306. The detecting,the identifying, the determining, the presenting, and the other stepsdescribed herein may be carried out by an internal message presentationmanagement module maintained in a persistent storage device of a localcomputing device. In certain embodiments, the detecting, theidentifying, the determining, the presenting, and the other stepsdescribed herein may be carried out by an external message presentationmanagement module hosted by a remote computing device or server. In thisway, aspects of message presentation management may be performed usingautomated computing machinery without manual action. Other methods ofperforming the steps described herein are also possible.

At block 320, a message from a source may be detected in the socialnetworking environment. Generally, detecting can include receiving,sensing, distinguishing, identifying, or otherwise differentiating amessage from a source in the social networking environment. The messagemay include a post on a timeline, a photograph, a video, an audiomessage, an instant message, an electronic message, chat messages,social network comments/posts, a text message (e.g., SMS), an email, amessage board, private exchanges between individuals, or other types ofmessages. The source may be an individual, a user, or a group of usersof a social networking environment. The message from the source may bedetected in the social networking environment. The social networkingenvironment may include websites, applications, or other platformsthrough which a user may communicate with a source (e.g., text messagingapplication, email application, video chat application, social mediawebsite). When a source sends a message to a user via the socialnetworking environment, the message presentation management engine maydetect the message and begin to identify and determine the presentationformat.

Consider the following example. A user may log on to a social networkingenvironment. A friend of the user may log on to the same socialnetworking environment and see that the original user is online. Thefriend may decide to send the user a message via a message on theirtimeline. The friend may write “Can't wait to watch the big gametonight!” on the timeline of the user. The user may receive the messagefrom their friend on their timeline. The message presentation managementengine of the social networking environment of the user may detect themessage from the friend and begin to identify the content of the messagein order to determine a presentation format. Other methods of detectinga message from a source may also be possible.

At block 340, an identified category for the message from the source maybe identified based on a set of candidate categories. Generally,identifying may include ascertaining, determining, selecting, resolving,computing, or otherwise establishing an identified category for themessage. The candidate categories may be general classifications orgroupings with shared characteristics which may narrow down the type orkind of message viewed by the user in a social networking environment.The candidate categories may use information based on predetermined,machine-learned, or crowd-sourced classifications to assist in thedetermination of an identified category for the message. The set ofcandidate categories may tailor a viewstream of a social networkingenvironment based on preset conditions or settings of the application,preferences of an individual user, or information from similar users.The viewstream can include a timeline, live activity feed, or otherinterface including a stream of social media content. In embodiments, inresponse to a candidate category being selected, the messages may befiltered through the identification of an identified category for themessage. The identified categories may be (narrower) classifications orgroupings with more specific shared characteristics which may describe(e.g., further narrow) the type or kind of message viewed by the user inthe social networking environment. Through one or more levels ofcategorization (e.g., candidate categories, identified categories), theviewstream of a user may be tailored to the preferences or interests ofthe specific user of a social networking environment. The identifiedcategories may allow the message presentation management engine todetermine a presentation format for the message.

In embodiments, the set of candidate categories may be constructed toinclude various sets of categories. Generally, constructing can includecreating, assembling, building, organizing, or otherwise generating theset of candidate categories to include various sets of categories. Inembodiments, the set of candidate categories may be constructed toinclude a set of predetermined categories at block 341. The set ofpredetermined categories may be a group of classifications based onpreset or programmed settings of a particular social networkingapplication. The preset or programmed settings of the application may beseparate from the preferences of the user. The predetermined categoriesmay include a predetermined personal category, a predeterminedconfidential category, a predetermined opinion category, a predeterminedlife event category, a predetermined action factor category, apredetermined media characteristic category, a predetermined naturallanguage category, or a predetermined temporal relevance category (asdescribed herein). The settings of the application may predeterminecertain presentation formats based on these categories. As an example, aparticular social networking website may have a predetermined settingwhich automatically presents posts in the predetermined life eventcategory at the top of the viewstream of a user.

In embodiments, the set of candidate categories may be constructed toinclude a set of machine-learned clustered categories at block 342. Theset of machine-learned clustered categories may be a set ofclassifications which are learned automatically by the computer,application, or engine based on user actions with respect to groupingsof similar types or kinds of messages. The set of machine-learnedclustered categories may be determined based on learned preferences,algorithms, predictions, patterns, or interests of a particular user ora plurality of users. The machine-learned categories may be learnedbased on clustering of the natural language of a message andsubsequently labeling the generated clusters. The machine-learnedclustered categories may include a machine-learned life event category,a machine-learned action factor category, a machine-learned mediacharacteristic category, a machine-learned natural language category, ora machine-learned temporal relevance category (as described herein). Themachine-learned patterns may establish certain presentation formatsbased on these categories. As an example, a user may rarely respond toor click on messages with any type of media content. As a result, themessage presentation management engine may filter-out or reduce thenumber of messages containing media content that are displayed to theuser in the social networking environment.

In embodiments, the set of candidate categories may be constructed toinclude a set of crowd-sourced categories at block 343. The set ofcrowd-sourced categories may be a set of classifications which are basedon the input or action of a group of users with respect to groupings ofsimilar types or kinds of messages. The set of crowd-sourced categoriesmay also account for the entire set of users of a social networkingenvironment. The set of crowd-sourced categories may be determined basedon preferences or interests of a group of users of a social networkingenvironment. The crowd-sourced categories may include a crowd-sourcedlife event category, a crowd-sourced action factor category, acrowd-sourced media characteristic category, a crowd-sourced naturallanguage category, or a crowd-sourced temporal relevance category (asdescribed herein). The information collected from a group of users in asocial networking environment may establish certain presentation formatsbased on these categories. As an example, messages with any type ofmedia content may be popular in general with users of a particularsocial networking environment. As a result, messages containing mediacontent may be more prominently displayed in the social networkingenvironment of a particular user.

Consider the following example. A user of a social networking websitemay receive a message from a close friend about an engagement. Themessage from the friend may be detected by the message presentationmanagement engine. The particular message from the friend may fall intothe life event category based on the content (e.g., engagement) of themessage. The message may also contain a photograph, so the message mayalso be sorted into the media characteristic category. The message maybe from yesterday, so the recent content of the message may result inthe message being sorted into the temporal relevance category. Thesocial networking application may have predetermined settings for thelife event category which automatically display messages containing lifeevent content at the top of the viewstream of a user. The socialnetworking application may have also detected a pattern regarding mediacontent of messages. A user may frequently view or respond to messageswith any type of media content, indicating a machine-learned preferencefor media content messages. Due to the photograph in this particularmessage, the particular message may be displayed at the top of theviewstream of the user. The social networking application may also havedetected a pattern based on a group of users in the same socialnetworking environment. Many users may interact with or respond tomessages which are temporally relevant (e.g., from yesterday) as opposedto messages which are temporally irrelevant (e.g., from last month). Dueto the general popularity of temporally relevant messages, the messagefrom yesterday may be displayed at the top of the viewstream of theuser. Due to the predetermined life event settings, the machine-learnedmedia content settings, and the crowd-sourced temporal relevancesettings, the message from the friend may be prominently displayed inthe viewstream of this user. Other methods of identifying an identifiedcategory for the message based on a set of candidate categories may alsobe possible.

At block 360, a presentation format for the message from the source maybe determined by comparing a set of user profile criteria with theidentified category for the message from the source. Generally,determining may include identifying, computing, resolving, selecting,formulating, or otherwise ascertaining a presentation format for themessage from the source. The presentation format may include a set ofdisplay attributes, qualities, characteristics, or features of a messagein the social networking environment of the user. The presentationformat may include presenting the user with the message, removing themessage from the viewstream of the user, flashing the message in theviewstream of the user, enlarging the message, reducing the size of themessage, changing the font of the message, or other methods ofpresentation (e.g., flashing a text message, placing an email at the topof the viewstream of the inbox of the user). The presentation format maybe determined by comparing a set of user profile criteria with theidentified category for the message from the source. Comparing mayinclude relating, mapping, associating, evaluating, ormatching/mismatching a set of user profile criteria with the identifiedcategory for the message from the source. The set of user profilecriteria may be a user-specific table, database, set of rules, set ofpolicies, or set of algorithms (of a user) which may be compared withthe identified category for a message in order to determine apresentation format (e.g., comparing a user-specific preference for newsarticles with the content of the specific article in the viewstream).The comparison of a set of user profile criteria with the identifiedcategory for the message may allow the message presentation managementengine to determine a presentation format for the message.

Consider the following example. A user may log on to a social mediawebsite, where there is a post by a retail store about a sale on shoes.The message presentation management engine may detect the existence ofthe post on the social media website. Identified categories for the postabout the shoe sale may be identified by the message presentationmanagement engine. As an example, the social networking application mayhave a predetermined setting with respect to temporal relevance. Thisparticular post about the shoe sale may be from two weeks ago.Therefore, the post may not be temporally relevant to the user. Due tothe temporal irrelevance of the post, the presentation format for thepost may include filtering-out the post from the viewstream of the user.The social networking application may detect that this user has aparticular interest in messages regarding important life events. Thepost about the shoe sale may not fall into the life event category. Dueto the lack of life event content in the post, the presentation formatfor the post may include reducing the size of the post in the viewstreamof the user. The social networking application may detect that users ofthis particular application have a preference for messages which havemedia content. The post about the shoe sale may contain photographs ofthe shoes, so the post may fall into the media content category. Due tothe media content of the post, the presentation format for the post mayinclude brightening the color of the photographs to catch the attentionof the user. Other examples of determining a presentation format for amessage may also be possible.

At block 380, the message from the source may be presented in the socialnetworking environment using the presentation format. Generally,presenting may include providing, organizing, exhibiting, displaying, orotherwise arranging the message from the source in the social networkingenvironment using the presentation format (e.g., enlarging, changing thecolor, hiding, using an accordion, brightening, changing the font,flashing the message, deleting the message). The message from the sourcemay be presented in the social networking environment based on thecomparison of user profile criteria (e.g., user settings, preferences)with the identified category for the message.

Consider the following example. A user may receive an email from afriend. The email may be detected in the inbox of the user by themessage presentation management system. Identified categories for theemail from the friend may be identified by the message presentationmanagement engine. As an example, the email inbox may have apredetermined setting with respect to media content in a message.Messages with a media characteristic may automatically be displayed atthe top of the inbox of a user. This particular email may not containany media content. Due to the lack of media content in the email, thepresentation format for the message may not include the placement of theemail at the top of the inbox of the user. The social networkingapplication may detect that this user quickly responds to any emailcontaining life event information. The email may contain informationabout the death of a family member of this friend. Since messages withlife event content may be important to the user, the presentation formatfor the message may include flashing this particular email in the inboxto catch the attention of the user. The social networking applicationmay detect (e.g., in the user profile criteria) that users of thisparticular email application have a preference for messages which aretemporally relevant. The email may have been sent two hours ago. Due tothe temporal relevance of the email, the presentation format for themessage may include changing the color of the preview of the email inthe inbox. Other examples of presenting the message may also bepossible.

Method 300 concludes at block 399. As described herein, aspects ofmethod 300 relate to using identified categories to dynamically managethe presentation of a message. Aspects of method 300 may provideperformance or efficiency benefits for the presentation of a message ina social networking environment. Aspects may save resources such asbandwidth, disk, processing, or memory. The use of candidate categoriesto determine a presentation format for a message may save bandwidth. Asan example, a set of candidate categories which includes a set ofcrowd-sourced categories may allow the message presentation managementengine to filter-out or reduce the number of messages which areunimportant or unpopular in general in the social networkingenvironment. The viewing of unimportant, unpopular, or irrelevantmessages in the social networking environment may waste bandwidth, sothe introduction of a set of crowd-sourced categories to better tailorthe messages in a viewstream of a user may save bandwidth. Other methodsof saving bandwidth through the use of candidate categories may also bepossible.

FIG. 4 is a flowchart illustrating a method 400 for message presentationmanagement in a social networking environment. Aspects method 400 may besimilar or the same as aspects of method 300, and aspects may beutilized interchangeably with one or more methodologies describedherein. The method 400 may begin at block 401. At block 420, a messagefrom a source may be detected in the social networking environment. Atblock 440, an identified category for the message from the source may beidentified based on a set of candidate categories.

In embodiments, structuring of the identified category and determiningthe presentation format for the message from the source may occur.Generally, structuring can include arranging, organizing, constructing,or otherwise configuring the identified category. As described herein,the identified category may include narrower classifications orgroupings with more specific shared characteristics which may furthernarrow the type or kind of message viewed by the user in the socialnetworking environment. The identified categories may be based onpredetermined settings, machine-learned clustered settings, orcrowd-sourced settings. By further narrowing the categories with respectto messages in a social networking environment, the message presentationmanagement engine may tailor the presentation format to a particularuser. The identified categories may include a life event characteristic,an action factor characteristic, a media characteristic, a naturallanguage characteristic, or a temporal relevance characteristic.Different aspects or attributes in each characteristic may be configuredin different ways. As an example, a social networking application mayinclude a predetermined setting which filters-out any message with aspecific natural language characteristic. Other natural languagecharacteristics which are not the specifically indicated one may not befiltered-out from the social networking environment. Once the identifiedcategory is structured, a presentation format for the message from thesource may occur using the established characteristic as describedherein.

In embodiments, the identified category may be structured to have a lifeevent characteristic at block 455. The established candidate categoriesmay include predetermined, machine-learned, or crowd-sourced categorieswith respect to life events. The identified category may be a selectedsubset of the established candidate categories. The identified categorymay include or be based on more specific life events. The life eventcharacteristics may include engagements (e.g., photographs of a ring,“she said yes” text), marriages (e.g., wedding photographs, weddingvideos), deaths (e.g., sharing of an obituary), birthdays (e.g.,calendar events, “happy birthday” text), anniversaries (e.g.,photographs from an anniversary celebration, “happy anniversary” text),births (e.g., baby photographs, “it's a girl!” text), new jobs (e.g.,“accepted a position” text, updated profile information including a newjob), education milestones (e.g., photograph from high schoolgraduation, photograph of college graduation, text paragraph aboutacceptance into college), or the like. The social networking applicationmay include predetermined, machine-learned, or crowd-sourced categorieswith respect to each of the specific life events. The presentationformat for the message from the source may be determined using the lifeevent characteristic. Various presentation formats may occur for variousaspects of the life event characteristic. As an example, a socialnetworking application may have a predetermined setting to prominentlydisplay any message with content about a death. The candidate categorymay be the predetermined life event category, while the identifiedcategory may be the specific life event (e.g., death). The presentationformat for posts pertaining to death may include displaying thesemessages at the top of the viewstream of the user.

In embodiments, the identified category may be structured to have anaction factor characteristic at block 456. The established candidatecategories may include predetermined, machine-learned, or crowd-sourcedcategories with respect to action factors. The identified category maybe a selected subset of the established candidate categories. Theidentified category may include or be based on more specific actionfactors. The action factor characteristics may include comments (e.g., acomment on a photograph, emojis/emoticons in a comment on a video),replies (e.g., a reply to a question on a video), likes (e.g., likes ona text post), shares (e.g., shares of a hyperlink, shares of anarticle), removal of a comment or reply (e.g., the deletion of a commenton a video, the reporting and subsequent removal of a comment on a newsarticle), viewing time (e.g., the amount of time a user spent look at aparticular post), or the like. Messages may need to achieve a thresholdnumber of these actions in order to be displayed to the user in thesocial networking environment. The social networking application mayinclude predetermined, machine-learned, or crowd-sourced categories withrespect to each of the specific action factors. The presentation formatfor the message from the source may be determined using the actionfactor characteristic. Various presentation formats may occur forvarious aspects of the action factor characteristic. As an example, asocial networking application may detect that a specific user isuninterested in messages which have fewer than a threshold level (e.g.,ten) of likes. The candidate category may be the machine-learned actionfactor category, while the identified category may be the specificaction factor (e.g., likes). The presentation format for posts which donot achieve a threshold number (e.g., ten) of likes may includefiltering-out these messages from the viewstream of the user.

In embodiments, the identified category may be structured to have amedia characteristic at block 457. The established candidate categoriesmay include predetermined, machine-learned, or crowd-sourced categorieswith respect to media characteristics. The identified category may be aselected subset of the established candidate categories. The identifiedcategory may include or be based on more specific media characteristics.The media characteristics may include video images (e.g., live videos,recorded videos, webcasts, video blogs, gifs), still images (e.g.,photographs), audio messages (e.g., voice messages, electronic audiomessage), hyperlinks (e.g., links to other websites, links to othersocial networking applications, links to other types of media), or thelike. The social networking application may include predetermined,machine-learned, or crowd-sourced categories with respect to each of thespecific media characteristics. The presentation format for the messagefrom the source may be determined using the media characteristic.Various presentation formats may occur for various aspects of the mediacharacteristic. As an example, a social networking application maydetect that users in general frequently interact with messages thatcontain video images. The candidate category may be the crowd-sourcedmedia characteristic category, while the identified category may be thespecific media characteristic (e.g., video image). The presentationformat for posts containing video images may include enlarging thesemessages in the viewstream of the user.

In embodiments, the identified category may be structured to have anatural language characteristic at block 458. The established candidatecategories may include predetermined, machine-learned, or crowd-sourcedcategories with respect to natural language characteristics. Theidentified category may further narrow down these categories. Theidentified category may be a selected subset of the establishedcandidate categories. The natural language characteristics may includesyntax (e.g. sentence structure, phrases, complete sentences), part ofspeech (e.g., nouns, verbs, adjectives, adverbs), complexity (e.g.,computational complexity, linguistic complexity), character count (e.g.,fifty characters, two hundred characters), grammar (e.g., grammaticalerrors, correct grammar, a threshold number of grammatical errors),spelling (e.g., spelling errors, no spelling errors, a threshold numberof spelling errors), mentions (e.g., tagging a friend, tagging awebpage, tagging a location), quantitative values (e.g., 100, 50%, $30),hashtags (e.g., indicating a trending topic), language (e.g., English,Spanish, French), or the like. The social networking application mayinclude predetermined, machine-learned, or crowd-sourced categories withrespect to each of the specific natural language characteristics. Thepresentation format for the message from the source may be determinedusing the natural language characteristic. Various presentation formatsmay occur for various aspects of the natural language characteristic. Asan example, a social networking application may have a predeterminedsetting to remove any post which exceeds a threshold number (e.g.,three) of spelling errors. The candidate category may be thepredetermined natural language characteristic category, while theidentified category may be the specific natural language characteristic(e.g., spelling errors). The presentation format for posts exceeding athreshold level (e.g., three) of spelling errors may include deletingthese messages from the viewstream of the user.

In embodiments, the identified category may be structured to have atemporal relevance characteristic at block 459. The establishedcandidate categories may include predetermined, machine-learned, orcrowd-sourced categories with respect to temporal relevancecharacteristics. The identified category may be a selected subset of theestablished candidate categories. The identified category may include orbe based on more specific temporal relevance characteristics. Thetemporal relevance characteristics may include the longevity of thecontent (e.g., a video message which disappears after it is played, amessage which is deleted after thirty days), streaming content (e.g., areal-time video, a live news story), age of the content (e.g., from twoweeks ago, from last year), the date of the content (e.g., January 2,Monday, 2016), or the like. The social networking application mayinclude predetermined, machine-learned, or crowd-sourced categories withrespect to each of the specific temporal relevance characteristics. Thepresentation format for the message from the source may be determinedusing the temporal relevance characteristic. Various presentationformats may occur for various aspects of the temporal relevancecharacteristic. As an example, news stories which exceed a thresholdlevel of age may be filtered-out from the viewstream of the user toavoid confusion. A social networking application may detect that a userinfrequently interacts with messages containing news stories exceeding athreshold temporal level (e.g., one month) of age. The candidatecategory may be the machine-learned temporal relevance characteristiccategory, while the identified category may be the specific temporalrelevance characteristic (e.g., older than one month). The presentationformat for posts exceeding a temporal level (e.g., one month) of age mayinclude reducing the amount of these news stories in the viewstream ofthe user.

Consider the following example. A user may receive a message via a poston a social networking website. The message presentation managementengine may identify identified categories for the post in order todetermine a presentation format. The post may be from the wedding of afriend. The social networking website may have a predetermined settingwith respect to posts containing content about weddings. Thepredetermined setting may be structured such that any post with contentabout weddings will be displayed at the top of the viewstream of theuser. The determined presentation format for the post about the weddingmay include displaying the post at the top of the viewstream on thesocial networking website when the user logs on. The post may includeseveral photographs from the wedding. The social networking website maydetect that this specific user frequently interacts with messagescontaining media content, especially those containing photographs. Themachine-learned action may include increasing the size of the photographin the viewstream of the user when the user logs on to the socialnetworking website. The post about the wedding may only have twocomments. The social networking website may detect a general popularityamong users of posts which achieve a threshold number of five comments.Since the post about the wedding has a number of comments which does notexceed five, the presentation format for the post may include hiding thepost from the viewstream of the user when they log on to the socialnetworking website. Over time, the post may receive more comments. Thepost may eventually exceed the threshold number of five comments (e.g.,seven comments). Once the post achieves five comments, the post aboutthe wedding may no longer be hidden and may appear in the viewstream ofthe user. The post about the wedding may include a paragraph of textwhich contains sixty words. The social networking website may include apredetermined setting which hides any post exceeding a threshold numberof fifty words. The presentation format for the post may include showingthe desired media content but hiding the long text paragraph. The postabout the wedding may be from over the weekend. The social networkingwebsite may detect that this specific user has a greater interest inposts that occur within a threshold period of one week. Since this postis less than one week old, the presentation format for the post mayinclude changing the font of the message to catch the attention of theuser. Other methods of structuring the identified category to determinethe presentation format may also be possible.

At block 460, a presentation format for the message from the source maybe determined by comparing a set of user profile criteria with theidentified category for the message from the source. At block 480, themessage from the source may be presented in the social networkingenvironment using the presentation format. Method 400 concludes at block499. As described herein, aspects of method 400 relate to usingidentified categories to dynamically manage the presentation of amessage. Aspects of method 400 may provide performance or efficiencybenefits for the presentation of a message in a social networkingenvironment. Aspects may save resources such as bandwidth, disk,processing, or memory. As an example, the structuring of the identifiedcategory to include user-specified preferences may save battery life ofa computing device such as a cell phone, tablet, or laptop computer. Auser may set visibility criteria to hide posts they are not interestedin viewing. The user may no longer have to waste battery of a devicescrolling or searching through their social networking environment tofind significant or relevant messages. Other methods of saving batterylife of a device may also be possible.

FIG. 5 is a flowchart illustrating a method 500 for message presentationmanagement in a social networking environment. Aspects method 500 may besimilar or the same as aspects of method 300/400, and aspects may beutilized interchangeably with one or more methodologies describedherein. The method 500 may begin at block 501. At block 520, a messagefrom a source may be detected in the social networking environment.

In embodiments, a set of metadata of the message from the source may beanalyzed at block 536. Generally, analyzing can include extracting,examining, evaluating, or otherwise assessing a set of metadata of themessage. The set of metadata may include information derived from amessage which can, in certain instances, indicate the identifiedcategory of a message. The set of metadata may include an event tag(e.g., Christmas Eve, birthday party), a location tag (e.g., New YorkCity, Yankee Stadium), a tagged user (e.g., a friend, a family member, abusiness), a time stamp (e.g., Wednesday, 10:05:15), a hashtag (e.g., atrending topic), or other information (e.g., file size, originationdevice, computer network address, author/creating-user, modifying user,time-to-live) which indicates the content of a message. The set ofmetadata of the message from the source may be analyzed to identify theidentified category for the message from the source based on the set ofcandidate categories. The set of metadata of the message from the sourcemay indicate the identified category. As an example, a message in thesocial networking environment may include a time stamp of March 2010.The predetermined settings of the social networking environment mayinclude removing all posts that exceed a threshold of age of threeyears. The message with the March 2010 time stamp may be deleted fromthe social networking environment of the user.

Consider the following example. A user may view several uploadedphotographs on a social networking website. The photographs may be froma Fourth of July party at the beach in San Diego, Calif. The photographsmay include an event tag (e.g., Fourth of July party), a location tag(e.g., San Diego), a hashtag (e.g., #USA), and a time stamp (e.g., Jul.4, 2015). The event tag, location tag, hashtag, and time stamp maycreate a set of metadata for the online photo album. The set of metadatafor this post may indicate identified categories for the post. The eventtag may indicate a holiday party, but not a life event characteristic.The social networking website may detect that users in general are lessinterested in holiday party events than major life events (e.g.,weddings). Since the event tag indicates a holiday party and not a lifeevent, the determined presentation format may include reducing the sizeof the photo album in the viewstream of the user. The location tag maybe within a threshold radius of twenty miles of the specific user (e.g.,fifteen miles). The social networking website may have predeterminedsettings to change the font of any post tagged within a twenty mileradius of the user. Since the location tag indicates a location withinthe threshold twenty-mile radius, the font of the post may be changed tocatch the attention of the user. The hashtag may correlate with atrending topic. On the day that the user logs on to the socialnetworking website, #USA may be trending with users in California. Thesocial networking website may detect that users in general are currentlyinterested in posts tagged with #USA. The presentation format mayinclude displaying the photo album post near the top of the viewstreamof the user. The time stamp may indicate that the post exceeds athreshold relevancy age of one year (e.g., the post is from one year andthree months ago). The social networking website may detect that thisspecific user rarely interacts with posts exceeding a threshold age ofone year. The presentation format may include hiding the photo albumfrom the viewstream of the user. Other examples of analyzing a set ofmetadata of the message may also be possible.

At block 540, an identified category for the message from the source maybe identified based on a set of candidate categories. At block 560, apresentation format for the message from the source may be determined bycomparing a set of user profile criteria with the identified categoryfor the message from the source.

In embodiments, the set of user profile criteria may be configured basedon a set of users which relates to the user at block 577. Generally,configuring can include arranging, organizing, constructing, orotherwise composing the set of user profile criteria based on a set ofsimilar users. The set of user profile criteria may be configured basedon the specific user, other similar users, users of the application orwebsite in general, or some combination of these. The set of userprofile criteria may be configured based on other preferences of aspecific user that have been input into the user profile criteria orhave been machine-learned by the system. The set of user profilecriteria may be configured based on similar users. Users may bedetermined “similar” based on overlapping attributes such as demographicinformation (e.g., same age, similar ages), location (e.g.,same/similar/related neighborhood, town, state, country, within athreshold radius), pages or messages liked (e.g., like similar pages,like the same pages), comparison of a friends or followers list (e.g.,many mutual friends, a threshold level of mutual friends, following thesame public figures), or the like. The set of user profile criteria maybe configured based on some combination of the specific user and a groupof similar users. The configuring of the set of user profile criteriamay occur with respect to the anticipated presentation of the message toa user. The configuring of the set of user profile criteria may occur inadvance of the actual presentation of the message. The set of userprofile criteria may include specific user preferences or interestsbased on predetermined settings, machine-learned patterns, orcrowd-sourced information. The set of user profile criteria may includepreferred settings for various candidate and/or identified categories.As an example, the set of user profile criteria for a specific user mayinclude a preference for media content, based on the detection of apattern of the specific user frequently viewing posts with links to newsarticles.

Consider the following example. A set of profile criteria for a user ofa specific social networking application may be configured. The set ofprofile criteria may include machine-learned preferences of the specificuser. As an example, the user may indicate a preference for messagesposted within a threshold period of six weeks. The social networkingapplication may detect a pattern of the specific user only viewing,interacting with, or responding to messages from the last six weeks. Theset of profile criteria for the specific user may be configured with athreshold temporal period of six weeks. Messages may be detected in thesocial networking application with respect to a temporal relevancecharacteristic. Messages older than six weeks may be hidden from theviewstream of the user. The set of profile criteria may includecrowd-sourced preferences of users which are similar to the specificuser. As an example, a user may watch and comment on a video of theirfavorite football team via the social media application. Another usermay also watch and comment on this video. Due to their shared interestin the same football team, the second user may be determined to besimilar to the original user. The set of user profile criteria for thesecond user may be analyzed. The set of user profile criteria for theoriginal user may be configured to include preferences and settings ofthe second user. The second user may like a basketball team located inthe same city at the football team and may view a lot of messages fromthat basketball team which contain media content. The set of userprofile criteria of the original user may be updated to include apossible interest in the basketball team based on a comparison oflocation and a mutual interest in messages relating to sports containingmedia content. The social networking application of the user mayrecommend messages related to the basketball team. The set of profilecriteria may include crowd-sourced preferences of users in general of aspecific social networking application. As an example, a trending topicwith respect to a major news event (e.g., election) on the socialnetworking application may indicate a general interest in this topicamong users. The set of user profile criteria may be configured toinclude a possible interest in posts pertaining to the election. Thesocial networking application of the user may recommend messages relatedto the election. Other examples of configuring a set of user profilecriteria based on a set of similar users may also be possible.

In embodiments, prompting and receiving may occur at block 578. The usermay be prompted with a set of options for the set of user profilecriteria. Generally, prompting may include surveying, examining,eliciting, suggesting, or otherwise inquiring about a set of options forthe set of user profile criteria. Prompting the user with a set ofoptions for the set of user profile criteria may allow the messagepresentation management to present messages which are more tailored tothe specific user. The set of options may include preferences forvarious categories, such as life events, action factors, media, naturallanguage, and temporal relevance. The user may be able to choose thesettings for their profile criteria and provide these selections back tothe message presentation management engine. The selecting may occurthrough a menu of options (e.g., an option to show life event messages,an option to hide media content messages), a multiple-choice survey(e.g., options to indicate specific natural language characteristics),the changing of a number on a scale (e.g., select an option to show alltemporally relevant messages, select an option to show no temporallyrelevant messages, select an option to show 50% of the temporallyrelevant messages), or other methods of selection. The set of optionsmay include changing the predetermined settings of the social networkingenvironment or providing user-input settings for the social networkingenvironment. A set of selections for the set of options for the set ofuser profile criteria may be received from the user. Generally,receiving may include obtaining, acquiring, collecting, or otherwisegathering a set of selections for the set of options for the set of userprofile criteria. The user-selected settings for the set of profilecriteria may assist in the determining of a presentation format for themessage in the social networking environment. The message presentationmanagement engine may use the user-selected options to tailor the socialnetworking environment to the particular interests and preferences ofthe user.

Consider the following example. A user of a social networkingenvironment may be prompted with a set of options for the set of userprofile criteria. The user may be asked to take a survey regarding thepresentation format of messages in the social networking environment.The user may be surveyed with respect to various categories of messages,such as life events, media, and natural language. The user may select anoption to more prominently display messages with life eventcharacteristics. The user may be prompted with a set of options forvarious specific types of life event characteristics. The user mayindicate a strong interest in messages regarding marriages but littleinterest in messages regarding birthdays. The user may want to benotified any time there is a message about someone they know gettingmarried, but may not want to know every time someone they knowcelebrates a birthday. The set of selections with respect to life eventcharacteristics may be received and used to configure the set of userprofile criteria. The user may select an option to enlarge the size ofmessages with media content such as pictures and videos, but to hidemessages with audio messages and hyperlinks. The user may select anoption to delete all messages containing slang words and spellingerrors, but to include any messages using Spanish language. The set ofselections made by the user may be added to the set of user profilecriteria. The updated user profile criteria may better tailor theviewstream of the social networking application to the specificpreferences and interests of the user. Other examples of prompting theuser with a set of options and receiving a set of selections for the setof user profile criteria may also be possible.

At block 580, the message from the source may be presented in the socialnetworking environment using the presentation format. Method 500concludes at block 599. As described herein, aspects of method 500relate to using identified categories to dynamically manage thepresentation of a message. Aspects of method 500 may provide performanceor efficiency benefits for the presentation of a message in a socialnetworking environment. Aspects may save resources such as bandwidth,disk, processing, or memory. As an example, bandwidth may be savedthrough the configuring of a set of user profile criteria. The set ofuser profile criteria may include the specific preferences of a user inorder to tailor the viewstream to the interests of the user. The usermay not have to waste bandwidth scrolling or searching through theirsocial networking environment to find relevant or interesting posts.Other methods of saving bandwidth using a set of user profile criteriamay also be possible.

FIG. 6 is a flowchart illustrating a method 600 for message presentationmanagement in a social networking environment. Aspects method 600 may besimilar or the same as aspects of method 300/400/500, and aspects may beutilized interchangeably with one or more methodologies describedherein. The method 600 may begin at block 601. At block 620, a messagefrom a source may be detected in the social networking environment. Atblock 640, an identified category for the message from the source may beidentified based on a set of candidate categories.

In embodiments, the set of user profile criteria may be modified using amachine-learning technique at block 646. Generally, modifying mayinclude altering, changing, adjusting, or otherwise adapting the set ofuser profile criteria using a machine-learning technique. Themachine-learning technique may be a process through which the messagepresentation management engine can automatically detect patterns,preferences, or inclinations of a user in a social networkingenvironment without being programmed to do so. The machine-learningtechnique may modify the set of user profile criteria based on detectedinterests or preferred settings of the user in order to tailor theviewstream in a social networking environment to fit the preferences ofa specific user.

Consider the following example. The set of profile data for a user maybe configured such that all messages with a life event characteristicmay be displayed in the social networking environment. The user may haveindicated in the past a preference for posts with life event contentthrough frequent interactions such as views, comments, likes, or shares.The user may have recently gotten divorced while many other users in thesame social networking environment are getting married. The recentlydivorced user may get upset seeing so many messages with content relatedto weddings and begin to ignore these posts instead of commenting on orsharing them. The set of profile criteria for this user may be modifiedusing a machine-learning technique. A pattern may be detected whereinthe user is uninterested in posts with the specific life eventcharacteristic (e.g., weddings). The set of profile data for this usermay be modified to include a new presentation format for messages withcontent related to weddings. The updated presentation format may includehiding these messages from the viewstream or reducing the size of thesemessages in the social networking environment. Other methods ofmodifying the set of user profile criteria using a machine-learningtechnique may also be possible.

At block 660, a presentation format for the message from the source maybe determined by comparing a set of user profile criteria with theidentified category for the message from the source. In embodiments, theset of user profile criteria may be configured based on a commonconnection of the user and the source at block 663. Configuring mayinclude structuring, arranging, constructing, or otherwise organizingthe set of user profile criteria based on a common connection of theuser and the source. The set of user profile criteria may be based onthe user profile criteria and settings of a specific similar user. Thecommon connection may be a mutual associate of both the user and thesource or another user of a social networking environment. The commonconnection may be analyzed to tailor the viewstream of a user to theirspecific preferences. As an example, a user may follow a celebrity on asocial networking website. The celebrity may send messages containinginformation about life events. The user may not be as interested in thelife events of the celebrity as they are interested in the life eventsof their close friends and family. The user profile criteria may beconfigured to reduce the number of life event messages from thecelebrity and promote life event messages from close friends and family.

Consider the following example. Alice may be a user of a specific socialnetworking environment. Alice may frequently send messages to Bob in thesocial networking environment. Bob may also frequently send messages toand receive messages from Charlie. Charlie may have a set of userprofile criteria which indicates a presentation format for messages fromBob. As an example, Bob may be a terrible speller, and Charlie may notenjoy reading messages from Bob with spelling errors. The set of userprofile criteria for Charlie may include deleting, removing, or hidingmessages from Bob which exceed a threshold of two spelling errors. SinceCharlie and Alice both receive messages from Bob, a set of user profilecriteria for Alice may be configured based on the common connectionbetween her and Charlie (e.g., friendship with Bob). The set of userprofile criteria for Alice may be configured in a similar way to the setof user profile criteria for Charlie. The set of user profile criteriafor Alice may include also deleting messages from Bob which exceed athreshold of two spelling errors. Other examples of configuring a set ofuser profile criteria based on a common connection of the user and thesource are also possible.

In embodiments, the presentation format may be resolved using both theidentified category and the source at block 664. Generally, resolvingcan include determining, concluding, computing, selecting, formulating,or otherwise ascertaining the presentation format. The presentationformat may include a set of display attributes, qualities,characteristics, or features of a message as described herein. Thepresentation format may be resolved based on a combination of theidentified category and information collected from the source of themessage. The information collected from the source of the message mayinclude the set of user profile criteria, machine-learned userpreferences, or other types of information. The identified category aswell as the set of user profile criteria for the source of message maybe analyzed and compared in order to resolve the presentation format ofa message.

Consider the following example. A user of social networking website mayread a news article shared in their viewstream. The user may stronglydisagree with the opinion of the friend who shared the news article. Theuser may comment on the article using negative language and emoticons. Athird user may comment on the article in a similar way, or even like orreply to the comment of the original user. The third user may eventuallydecide to alter their profile settings to hide all opinion-related postsfrom the friend who originally shared the article. The similar actionfactor and natural language characteristics of the third user and theoriginal user may trigger the comparison of the set of profile data ofthe two users. The set of profile data of the original user may beconfigured in a similar way as the set of profile data of the third usersuch that all opinion-related posts from the friend will be hidden fromthe viewstream. The presentation format (e.g., hiding the newsarticle/opinionated text) may be resolved for the original user. Othermethods of resolving the set of user profile criteria using both theidentified category and the source may also be possible.

At block 680, the message from the source may be presented in the socialnetworking environment using the presentation format. Method 600concludes at block 699. As described herein, aspects of method 600relate to using identified categories to dynamically manage thepresentation of a message. Aspects of method 600 may provide performanceor efficiency benefits for the presentation of a message in a socialnetworking environment. Aspects may save resources such as bandwidth,disk, processing, or memory. As an example, using similar users tocreate a set of profile criteria for a user may save processing time.Basing a set of user profile criteria off of preexisting profilecriteria for another user may take less processing time than creating anentirely new set of profile criteria. Also, the set of profile criteriafor a user may be created dynamically while the user is logged onto thesocial networking environment. By dynamically creating a set of userprofile criteria in real-time, processing time may be saved. Othermethods of saving processing time may also be possible.

Consider the following example. Jack, the user of a social networkingenvironment, may receive a message from his friend Liz. The message maybe detected in the social networking environment and an identifiedcategory for the message may be identified based on a set of candidatecategories. The social networking website used by Jack may have apredetermined setting to hide any message which does not include anyaction factor characteristics. Specifically, the social networkingwebsite used by Jack may be configured such that messages with zerolikes do not appear in the viewstream of the user. A presentation formatfor the message from Liz may be determined (e.g., hide the message fromLiz because it has zero likes). Another friend of Liz may view themessage and like it. The presentation format for the message may changenow that the message has achieved a threshold level of one like. Themessage from Liz may now appear in the viewstream. Jack may receiveanother message from Carl. Carl may share a link to an article about hisfavorite football team. The social networking website used by Jack mayinclude a machine-learned clustered setting which indicates that Jack isgenerally interested in messages with media content. A presentationformat for the message from Carl may be determined (e.g., add themessage from Carl to Jack's viewstream). The social networking websiteused by Jack may also include a machine-learned clustered setting whichindicates that Jack is uninterested in messages older than six months.The message from Carl may be from last year. Since one year is a longeramount of time than six months, the message from Carl may be categorizedas temporally irrelevant to Jack. A new presentation format for themessage from Carl may be determined (e.g., reduce the size of themessage from Carl in Jack's viewstream). Jack may receive a thirdmessage from Amanda. Amanda may have just been accepted to college inColorado. Amanda may tag her message with a location of “Colorado.”Colorado may exceed a threshold distance of thirty miles from Jack, sothe natural language content in Amanda's message may determine apresentation format for the message in Jack's viewstream. Thepresentation format may include hiding the message from Amanda in Jack'sviewstream. The message from Amanda may also include an important lifeevent (e.g., acceptance to college) and the social networkingenvironment of Jack may have a predetermined setting which indicates tochange the font of all life event content messages to catch theattention of the user. Since Amanda's post contains important life eventinformation, the presentation format may include changing the font ofthe message from Amanda.

A set of profile data may be configured for Jack. The set of profiledata may be based on a set of users who are similar to Jack. As anexample, Jack and Carl may both follow the quarterback from theirfavorite football team in their social networking environments. The setof profile data configured for Jack may be based on the set of profiledata for Carl. The set of profile data for Carl may include a deletionof any post containing more than a threshold level (e.g., 200) ofcharacters. The set of profile data for Jack may now be configured toinclude a deletion of any post containing more than a threshold level of200 characters. Jack may be prompted with a set of options for the setof user profile criteria. Jack may select an option to unhide any postcontaining more than a threshold level of 200 characters. The set ofprofile criteria for Jack may be configured to reflect his selectionregarding the number of characters. Over time, Jack may end up hidingposts with more than 200 characters. Using a machine-learning technique,the set of user profile criteria for Jack may be modified to hide postswith more than 200 characters. Other methods of message presentationmanagement in a social networking environment may also be possible.

In addition to embodiments described above, other embodiments havingfewer operational steps, more operational steps, or differentoperational steps are contemplated. Also, some embodiments may performsome or all of the above operational steps in a different order. Themodules are listed and described illustratively according to anembodiment and are not meant to indicate necessity of a particularmodule or exclusivity of other potential modules (or functions/purposesas applied to a specific module).

In the foregoing, reference is made to various embodiments. It should beunderstood, however, that this disclosure is not limited to thespecifically described embodiments. Instead, any combination of thedescribed features and elements, whether related to differentembodiments or not, is contemplated to implement and practice thisdisclosure. Many modifications and variations may be apparent to thoseof ordinary skill in the art without departing from the scope and spiritof the described embodiments. Furthermore, although embodiments of thisdisclosure may achieve advantages over other possible solutions or overthe prior art, whether or not a particular advantage is achieved by agiven embodiment is not limiting of this disclosure. Thus, the describedaspects, features, embodiments, and advantages are merely illustrativeand are not considered elements or limitations of the appended claimsexcept where explicitly recited in a claim(s).

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Java, Smalltalk, C++ or the like,and conventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

Embodiments according to this disclosure may be provided to end-usersthrough a cloud-computing infrastructure. Cloud computing generallyrefers to the provision of scalable computing resources as a serviceover a network. More formally, cloud computing may be defined as acomputing capability that provides an abstraction between the computingresource and its underlying technical architecture (e.g., servers,storage, networks), enabling convenient, on-demand network access to ashared pool of configurable computing resources that can be rapidlyprovisioned and released with minimal management effort or serviceprovider interaction. Thus, cloud computing allows a user to accessvirtual computing resources (e.g., storage, data, applications, and evencomplete virtualized computing systems) in “the cloud,” without regardfor the underlying physical systems (or locations of those systems) usedto provide the computing resources.

Typically, cloud-computing resources are provided to a user on apay-per-use basis, where users are charged only for the computingresources actually used (e.g., an amount of storage space used by a useror a number of virtualized systems instantiated by the user). A user canaccess any of the resources that reside in the cloud at any time, andfrom anywhere across the Internet. In context of the present disclosure,a user may access applications or related data available in the cloud.For example, the nodes used to create a stream computing application maybe virtual machines hosted by a cloud service provider. Doing so allowsa user to access this information from any computing system attached toa network connected to the cloud (e.g., the Internet).

Embodiments of the present disclosure may also be delivered as part of aservice engagement with a client corporation, nonprofit organization,government entity, internal organizational structure, or the like. Theseembodiments may include configuring a computer system to perform, anddeploying software, hardware, and web services that implement, some orall of the methods described herein. These embodiments may also includeanalyzing the client's operations, creating recommendations responsiveto the analysis, building systems that implement portions of therecommendations, integrating the systems into existing processes andinfrastructure, metering use of the systems, allocating expenses tousers of the systems, and billing for use of the systems.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

While the foregoing is directed to exemplary embodiments, other andfurther embodiments of the invention may be devised without departingfrom the basic scope thereof, and the scope thereof is determined by theclaims that follow. The descriptions of the various embodiments of thepresent disclosure have been presented for purposes of illustration, butare not intended to be exhaustive or limited to the embodimentsdisclosed. Many modifications and variations will be apparent to thoseof ordinary skill in the art without departing from the scope and spiritof the described embodiments. The terminology used herein was chosen toexplain the principles of the embodiments, the practical application ortechnical improvement over technologies found in the marketplace, or toenable others of ordinary skill in the art to understand the embodimentsdisclosed herein.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the variousembodiments. As used herein, the singular forms “a,” “an,” and “the” areintended to include the plural forms as well, unless the context clearlyindicates otherwise. “Set of,” “group of,” “bunch of,” etc. are intendedto include one or more. It will be further understood that the terms“includes” and/or “including,” when used in this specification, specifythe presence of the stated features, integers, steps, operations,elements, and/or components, but do not preclude the presence oraddition of one or more other features, integers, steps, operations,elements, components, and/or groups thereof. In the previous detaileddescription of exemplary embodiments of the various embodiments,reference was made to the accompanying drawings (where like numbersrepresent like elements), which form a part hereof, and in which isshown by way of illustration specific exemplary embodiments in which thevarious embodiments may be practiced. These embodiments were describedin sufficient detail to enable those skilled in the art to practice theembodiments, but other embodiments may be used and logical, mechanical,electrical, and other changes may be made without departing from thescope of the various embodiments. In the previous description, numerousspecific details were set forth to provide a thorough understanding thevarious embodiments. But, the various embodiments may be practicedwithout these specific details. In other instances, well-known circuits,structures, and techniques have not been shown in detail in order not toobscure embodiments.

What is claimed is:
 1. A computer program product for messagepresentation management in a social networking environment comprising acomputer readable storage medium readable by a processing circuit andstoring instructions for execution by the processing circuit forperforming a method comprising: detecting, in the social networkingenvironment, a message from a source; identifying, based on a set ofcandidate categories, an identified category for the message from thesource, wherein the identified category comprises a life eventcharacteristic, an action factor characteristic, a media characteristic,a natural language characteristic, and a temporal relevancecharacteristic; determining, for a user receiving the message from thesource, a set of user profile criteria by: prompting the user with a setof options for the set of user profile criteria; receiving, from theuser, a set of selections for the set of options for the set of userprofile criteria; and modifying the set of user profile criteria using amachine-learning technique; determining a presentation format for themessage by comparing the set of user profile criteria with the lifeevent characteristic, the action factor characteristic, the mediacharacteristic, the natural language characteristic, and the temporalrelevance characteristic; and presenting the message to the user, in thesocial networking environment, according to the determined presentationformat.